package composants
{
	import mx.controls.Alert;
	import mx.core.UIComponent;
	
	/**
	 * 
	 * Classe qui représente nos objets posés sur un mur: portes, fenêtres et oeuvres
	 */
	public class Ouverture extends UIComponent
	{
		/**
		 * 
		 * abscisse du point de l'objet sur la grille  
		 */
		public var x1:int;
		/**
		 * 
		 * ordonnée du point de l'objet sur la grille  
		 */
		public var y1:int;
		/**
		 * 
		 * identifiant unique pour l'objet 
		 */
		public var idOuverture:int;
		/**
		 * 
		 * abcisse recalculée suivant l'échelle
		 */
		public var sx1:String;
		/**
		 * 
		 * ordonnée recalculée suivant l'échelle
		 */
		public var sy1:String;
		
		/**
		 * 
		 * chaine de caractère qui contient le type d'ouverture (porte, fenêtre ou oeuvre)
		 */
		public var typeOuverture:String;
		
		
		/**
		 * Constructeur, initialisation des attributs
		 * @param typeOuverture type d'ouverture de l'objet
		 * @param x1 abcisse du point de l'objet
		 * @param y1 ordonnée du point de l'objet
		 * @param pasSize taille d'un carreau de la grille
		 * @param idOuverture identifiant de l'objet
		 */
		public function Ouverture(typeOuverture:String, x1:int, y1:int, pasSize:int,idOuverture:int)
		{	
			this.typeOuverture = typeOuverture;
			this.x1 = x1;
			this.y1 = y1;
			
			this.idOuverture = idOuverture;
			
			if (pasSize != 0) {
				sx1 = (100*x1/pasSize).toFixed(0);
				sy1 = (100*y1/pasSize).toFixed(0);
			}
			else {
				sx1 = (String)(100*x1);
				sy1 = (String)(100*y1);
			}
		}

		/**
		 * Cette fonction participe à la création du fichier xml d'une salle.
		 * @param taille représente la taille d'un carreau de la grille
		 * @param pasSize représente la taille de grille
		 * @return du xml sous forme d'un chaine de caractère, contenant les coordonées de l'objet
		 * @see composants.GridRoom#ecrireFichier()
		 */
		public function toXml(taille:int, pasSize:int):String
		{
			var chaine:String ="";
			
			// On écrit les coordonnées du mur en XML et les stocke dans chaine
			chaine = "<Vertix x=\"" + sx1 + "\" y=\"" + (Math.abs((int)(sy1)- taille)).valueOf() + "\" />";
			
			return chaine;
		}
	}
}
